package leetcode;

//给定一个只包含 '(' 和 ')' 的字符串，找出最长的包含有效括号的子串的长度。
//示例 1:
//输入: "(()"
//输出: 2
//解释: 最长有效括号子串为 "()"
//示例 2:
//输入: ")()())"
//输出: 4
//解释: 最长有效括号子串为 "()()"

import java.util.Stack;

public class problems_032 {

    public static void main(String[] arge){
        System.out.println(new Solution().longestValidParentheses(")()())"));
    }
    static class Solution {
        public int longestValidParentheses(String s) {
            if(null == s || "".equals(s)) return 0;
            Stack<String> stack = new Stack<String>();
            int ret = 0;
            for (int i = 0; i < s.length(); i++) {
                if(s.charAt(i) == '('){
                    stack.push("(");
                }else if(s.charAt(i) == ')'){
                    if (stack.empty()) {
                        continue;
                    }
                    stack.pop();
                    ret++;
                }else {
                    continue;
                }
            }
            return ret * 2;
        }
    }
}
